Platform Explorer / Nuxeo Platform 6.0

Component org.nuxeo.theme.services.ThemeService

Documentation

Service providing an extension mechanism for Themes.

Implementation

Class: org.nuxeo.theme.services.ThemeService

Extension Points

XML Source

<?xml version="1.0"?>
<component name="org.nuxeo.theme.services.ThemeService">

  <documentation>
    Service providing an extension mechanism for Themes.
    @author Jean-Marc Orliaguet (jmo@chalmers.se)
  </documentation>

  <implementation class="org.nuxeo.theme.services.ThemeService"/>

  <extension-point name="registries">
    <documentation>
      Extension Point for adding Registries. Registries are used internally by NXThemesCore to store information about registered Elements, Fragments, Models, Formats, etc.
      This is for internal use mainly, new registries are not supposed to be created by third-party applications.
    </documentation>
    <object class="org.nuxeo.theme.RegistryType"/>
  </extension-point>

  <extension-point name="elements">
    <documentation>
      Extension Point for registering Theme Elements such as Themes, Pages, Sections, Cells, Fragments, etc.
      This is for internal use mainly, new types of Elements are not supposed to be registered by third-party applications.
    </documentation>
    <object class="org.nuxeo.theme.elements.ElementType"/>
  </extension-point>

  <extension-point name="fragments">
    <documentation>
      Extension Point for registering new types of Fragments.
      Fragments produce Model data that is rendered by Views.

      The XML syntax is:

      <code>
        <fragment name="fragment name">
          <class>org.nuxeo.theme.fragments.FragmentClass</class>
          <model-type>model type</model-type>
        </fragment>
      </code>

      where:
      - 'class' is the Java class implementing org.nuxeo.themes.fragments.Fragment
      - 'model-type' is the type of Model data produced by the Fragment.

      The Model type information is optional, however it determines the types of Views that the Fragment will be renderable with.
    </documentation>
    <object class="org.nuxeo.theme.fragments.FragmentType"/>
  </extension-point>

  <extension-point name="models">
    <documentation>
      Extension Point for registering new types of Models.

      The XML syntax is:

      <code>
        <model name="model name">
          <class>org.nuxeo.theme.models.ModelClass</class>
        </model>
      </code>

      where:
      - 'class' is the Java class implementing org.nuxeo.themes.models.Model.
    </documentation>
    <object class="org.nuxeo.theme.models.ModelType"/>
  </extension-point>

  <extension-point name="formats">
    <documentation>
      Extension Point for registering Format types such as Style, Layout, Widget.
      This is for internal use mainly, new types of Formats are not supposed to be registered by third-party applications.
    </documentation>
    <object class="org.nuxeo.theme.formats.FormatType"/>
  </extension-point>

  <extension-point name="format-filters">
    <documentation>
      Extension Point for registering Format filters.
      This is for internal use mainly, new types of filters are not supposed to be registered by third-party applications.
    </documentation>
    <object class="org.nuxeo.theme.formats.FormatFilterType"/>
  </extension-point>

  <extension-point name="standalone-filters">
    <documentation>
      Extension Point for registering Standalone Filters.

      The XML syntax is:

      <code>
        <standalone-filter name="filter name">
          <engine>engine name</engine>
          <class>org.nuxeo.theme.filters.FilterClass</class>
        </standalone-filter>
      </code>

      where:
      - 'engine' is the name of the Engine for which the Filter will be applied. (Optional)
      - 'class' is the Java class extending org.nuxeo.theme.rendering.StandaloneFilter
    </documentation>
    <object class="org.nuxeo.theme.rendering.StandaloneFilterType"/>
  </extension-point>

  <extension-point name="resources">
    <documentation>
      Extension Point for registering theme resources.

      1) Local resources

      The XML syntax is:

      <code>
        <resource name="resourcename.xxx">
          <path>path/to/resource.xxx</path>
          <require>other-resource.xxx</require>
        </resource>
      </code>

      where:
      - 'name' is the name of the Resource. Supported extensions are '.js', '.css' and '.json'.
      - 'path' is the path of the Resource to be loaded by the class loader.
      - 'require' is the name of another Resource that is required. (Optional)
      Several resources can be required:

      <require>other-resource1.xxx</require>
      <require>other-resource2.xxx</require>

      2) Remote resources (theme banks)

      Resources can be registered into theme banks to be accessed remotely.

      The XML syntax on the server side is:
      <code>
        <import src="bank-resources.zip" bank="bank name" collection="collection name" />
      </code>

      The zip archive is deployed into the bank.
      The archive's structure is:

      style/
      image/
      preset/
      preset/
      preset/border/
      preset/font/
      preset/background/
      preset/color/
      ...

    </documentation>
    <object class="org.nuxeo.theme.resources.ResourceType"/>
    <object class="org.nuxeo.theme.resources.BankImport"/>
  </extension-point>

  <extension-point name="views">
    <object class="org.nuxeo.theme.views.ViewType"/>
  </extension-point>

  <extension-point name="engines">
    <object class="org.nuxeo.theme.engines.EngineType"/>
  </extension-point>

  <extension-point name="template-engines">
    <object class="org.nuxeo.theme.templates.TemplateEngineType"/>
  </extension-point>

  <extension-point name="negotiations">
    <object class="org.nuxeo.theme.negotiation.NegotiationType"/>
  </extension-point>

  <extension-point name="themes">
    <object class="org.nuxeo.theme.themes.ThemeDescriptor"/>
  </extension-point>

  <extension-point name="themesets">
    <object class="org.nuxeo.theme.themes.ThemeSet"/>
  </extension-point>

  <extension-point name="perspectives">
    <documentation>
      Extension Point for registering perspectives.

      The XML syntax is:

      <code>
        <perspective name="perspective_name">
          <title>Perspective title</title>
        </perspective>
      </code>

      where:
      - 'name' is the name of perspective (lower-case alpha-numeric characters, underscores and hyphens)
      - 'title' is the title of the perspective

    </documentation>
    <object class="org.nuxeo.theme.perspectives.PerspectiveType"/>
  </extension-point>

  <extension-point name="applications">
    <object class="org.nuxeo.theme.ApplicationType"/>
  </extension-point>

  <extension-point name="shortcuts">
    <documentation>
      Extension Point for registering navigation shortcuts (access keys, ...)

      The XML syntax is:

      <code>
        <shortcut key="k" target="/target.faces?..."/>
      </code>

      where:
      - 'key' is the shortcut key..
      - 'target' is the associated URL.
    </documentation>
    <object class="org.nuxeo.theme.ShortcutType"/>
  </extension-point>

  <extension-point name="presets">
    <documentation>
      Extension Point for registering Presets.

      Presets are stored in Palettes.

      The XML syntax is:

      <code>
        <palette name="palette name" src="palette source" category="category"/>
      </code>

      where:
      - 'name' is the name of the Palette.
      - 'src' is the source of the Palette (String)
      - 'category' is the palette category (optional)

      Supported palette types are:

      - *.properties (Properties file)
      - *.aco (Photoshop color palettes)
      - *.gpl (Gimp palettes)
    </documentation>
    <object class="org.nuxeo.theme.presets.PaletteType"/>
  </extension-point>

  <extension-point name="vocabularies">
    <object class="org.nuxeo.theme.vocabularies.VocabularyType"/>
  </extension-point>

  <extension-point name="banks">
    <documentation>
      Extension Point for registering theme banks.

      The XML syntax on the client side is:
      <code>
        <bank name="mybank" url="http://theme.bank.address.com:8080/nuxeo/site/theme-banks/mybank" />
      </code>

    </documentation>
    <object class="org.nuxeo.theme.resources.ResourceBank"/>
  </extension-point>

</component>